// 引入http模块
const { createServer } = require('http')
// 路径操作
const { join } = require('path')
// 文件操作
const { readFile, readFileSync } = require('fs')
// url解析操作
const url = require('url')

// 定义网站根目录
const webRoot = join(__dirname, 'public')

// 定义404页面
const notpage = join(webRoot, '404.html')

// 创建web服务器对象
const server = createServer((req, res) => {
  // 当前请求的uri地址
  let uri = req.url
  // 
  let { pathname } = url.parse(uri, true)
  // 缺省文件
  pathname = pathname === '/' ? '/index.html' : pathname

  // 排除一个/favicon.ico
  if ('/favicon.ico' != pathname) {
    // 请求文件的真实服务器中的地址
    let filepath = join(webRoot, pathname)

    // 读取文件
    readFile(filepath, (err, data) => {
      if (err) {
        // 此文件不存在，返回404页面
        res.end(readFileSync(notpage))
      } else {
        // 文件读取成功
        res.end(data)
      }
    })
  }
})

// 设置端口号
server.listen(8080, () => {
  console.log('启动服务成功！');
})